#define APP 4

#if APP==1

#include <vector>
#include "python/app.h"
    #define APPClass PythonApplication
#endif

#if APP==2
    #include "cube/app.h"
    #define APPClass StlApplication
#endif

#if APP==3
    #include "stl_view/app.h"
    #define APPClass StlApplication
#endif

#if APP==4
#include "lab/app.h"
    #define APPClass LabApplication
#endif


int main(int argc, char **argv) {
/*
    uint32_t w;
    uint32_t h;
    uint32_t c;
    FILE * pFile = fopen("res/field_bg.png", "rb");
    fseek(pFile, 0, SEEK_END);
    int64_t filesize = ftello(pFile);
    fseek(pFile, 0, SEEK_SET);
    std::vector<uint8_t> buf((size_t)filesize);
    if (fread(buf.data(), 1, buf.size(), pFile) == buf.size()) {
        fclose(pFile);
        //void* load_png(const void* pImage_buf, size_t buf_size, uint32_t desired_chans, uint32_t& width, uint32_t& height, uint32_t& num_chans)
        void * png = pv_png::load_png(buf.data(), buf.size(),  4, w, h, c);
        if (png)
            free(png);
        printf("%d %d %d\n", w, h, c);
    }
*/

    auto * application = new APPClass(argc, argv);
    application->run();
    delete application;
}
